1. The Field of the Invention
This invention relates generally to computer communication using a modem. More particular, the invention relates to concurrent interaction with a modem or any other communication device having an open connection for exchanging data between computers over a communication channel.
2. Present State of the Art
Digital processing devices such as computers have become more increasingly utilized in the exchange of communication information. Computers that were once autonomous computing entities are now typically interconnected with networks to process and exchange data. As transmitting computers and receiving computers may be remotely located one from another, a variety of communication channels or networks are employed to facilitate the routing of signals between the computers.
To facilitate the propagation of communication information across networks, computers interface with, or incorporate a modem to facilitate the electromagnetic propagation of communication information. In a transmitting role, a modem receives data in digital form from a host computer and couples or codes such data onto a propagatable waveform compatible with a specified network. Such a coupling process, commonly known as modulation, may vary in various characteristics that are commonly designated according to a transfer capacity measured in transitions or baud rates. A baud rate of a modem may change as a result of several factors, some of which include the rate carrying capacity of a network, the present noise levels associated with the communication channel and other parameters that require a modem to transmit data information at a reliable rate.
To facilitate the exchange of data between a host and a remote party, a communication application operating on a host system may provide a high level interface with a user of the host system and may also provide low level interfaces with hardware devices such as the modem. In FIG. 1, a prior art configuration of a host computer system interfacing with a modem for communication across a network via a communication channel is depicted. A communication application 10 interacts with an operating system 12 for facilitating the exchange of data and command information with a modem 24. Operating system 12, as depicted in FIG. 1, presents an exemplary operating system 12 such as, for example, Microsoft Windows 95.RTM.. Communication application 10 may take the form of common communication applications known by those of skill in the art which compatibly interface with the target operating system.
Communication application 10 interacts with operating system 12 through the use of an application programmer interface (API) 14 which exemplary utilizes a Win 32 API for interacting with the operating system. Alternatively, communication application 10 may interact directly with the hardware while bypassing interaction with the operating system. A specific API which is provided by an operating system vendor for interaction with communication devices is illustrated as a Win32 communications API 18 which provides a standardized set of services in a command structure form such as commands to configure, open and close a connection. The exemplary operating system 12 is further comprised of a serial driver 20, taking the form of a virtual device driver in the present example, for providing a bridge between the software associated with both communication application 10 and operating system 12 and the physical hardware illustrated as a serial communication port 22. Selection of a specific serial driver 20 may be determined by the corresponding hardware and software selections performed during a setup process when specific hardware and software drivers are configured.
Serial com port 22 interfaces directly with modem 24 over a dedicated link such as a serial link which traditionally takes the form of an RS-232 interface. Serial com port 22 traditionally interfaces with the host system via a bus such as an ISA, PC card or PCMCIA.
Serial com port 22 compatibly bridges a software execution and selection performed in communication application 10 with the configuration and processing performed by modem 24. As briefly described above, the data rates and configuration associated with modem 24 may be largely determined by characteristics such as the communication channel capability in addition to the capabilities of the remote or receiving modem. Due to the broad range of interfacing requirements, communication application 10 must properly configure modem 24 for compatible communication with a remote modem. In such a configuration or initialization process, a mode selector 26 resident within modem 24 selects an initialization mode or configuration mode commonly known as the AT mode represented in FIG. 1 as AT mode process 30. Such a mode provides general configuration control commands for modem 24.
In addition to control information, modem 24 is further comprised of status information denoting the present transfer speed and other various capabilities also known within modem 24. Both the modem, or any other communication device, and status are depicted as being stored within modem status/control 32 accessible by operating system 12 via AT mode process 30 when the mode selector 26 is directed or configured to be operating in the AT mode. Following completion of the setup or initialization process as carried out by AT mode process 30, mode selector 26 of modem 24 enables a traditional communication mode illustrated as traditional communication process 28. Data passing between the local host system and remote system pass through a data pump portion of modem 24 wherein data is physically modulated for transfer to a remote modem and received data is demodulated by the data pump within modem 24 for delivery to the communication application 10.
Upon the completion of the initialization process and the establishment of an open channel for transporting data information, data may be exchanged with a remote modem in a generally transparent fashion. However, when data rates appear to be less than desirable or when a user desires to have more control and insight into the status and operation of modem 24 with respect to the communication channel, the user may employ a diagnostic application such as a connection monitor 38 for interrogation of modem 24. While a user may desire to get status and control information from modem 24 while a connection is open, prior art implementations require the connection to be closed while connection monitor 38 issues an API 40 notifying modem 24 to revert to AT mode process 30 for extraction of modem status and control information. One such prior art solution employed the use of time-differentiated "+++" commands. Such a prior art approach transfers the modem from a communication process to AT mode process 30 by initiating a pause in the data transmission followed by the dispatch of a +++ representing an AT command followed by another pause for a specified period of time. Modem 24 recognizes such a pattern as an AT command request and toggles the mode from the communication process to the AT mode. Such a switching process introduces a significant amount of delay as it replicates an operator induced process. Such a delay may be upwards of several seconds thereby grossly impacting the throughput associated with the traditional communication process and skew the diagnostic results of interest.
Upon retrieving the requested status information from modem status/control 32, connection monitor 38 then asserts the appropriate commands to toggle the mode of modem 24 back to traditional communication process 28. Connection monitor 38 is then terminated and communication application 10 is reexecuted. Such a protracted switching operation greatly impacts the throughput associated with the transceiving of data information and communication application 38 may not be able to tolerate connection monitor 38 induced delays and will possibly fail in execution. Additionally, because of the significant impact to system performance, such a status query process may only be performed on an intermittent basis to preserve a tolerable throughput rate. Such an infrequent query of status information results in the diagnostic information available to the user becoming quickly outdated and stale thereby losing much of the status information's usefulness.
Other implementations or attempts to extract status or diagnostic information from a modem have resorted to incorporating diagnostic processes within the communication application. While such an approach may relieve the termination and reexecution processes associated with initiating and closing applications, such hybrid applications rely upon the utilization of mode switching commands including the aforementioned shortcomings. Furthermore, utilization of a hybrid communication/connection monitor restricts a user's preference in selecting a preferred communication application which may not include hybrid diagnostic capability and a separate connection monitor preferred by a user which may incorporate enhanced diagnostic features. That is to say, a hybrid communication/connection monitor does not enable a user to electically select preferred communication and connection monitors.
Thus, what is needed is a method and system for enabling a connection monitor to concurrently interact with a modem during an open connection controlled by a communication application without terminating the open connection of the modem or requiring the modem to switch to an initialization mode during such a diagnostic process. Furthermore, what is desired is a method and system for facilitating the concurrent operation of a communication application and a connection monitor and allowing both applications to access and communicate with a modem.